package com.example.controller;
import com.example.DTO.CollectDTO;
import com.example.result.Result;
import com.example.entity.Collect;
import com.example.service.CollectService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/collect")
@Tag(name = "收藏模块", description = "收藏模块的描述")
public class CollectController {
    @Autowired
    private CollectService collectService;

    /**
     * 通过用户id查看用户收藏的商品列表，并按时间倒序排序
     * @param buyerId
     * @return
     */
    @GetMapping("/selectById/{buyerId}")
    @Operation(summary = "查看用户收藏")
    public Result selectById(@PathVariable Integer buyerId) {
        return collectService.selectbyId(buyerId);
    }

    /**
     * 批量删除收藏夹里面的商品
     * @param ids
     * @return
     */
    @DeleteMapping("/delCollectsBatch")
    @Operation(summary = "批量删除收藏")
    public Result delCollectsBatch(@RequestBody List<Integer> ids){
        collectService.delCollectsBatch(ids);
        return Result.success();
    }

    /**
     * 选择多件商品进行收藏，可以从主页选择单独一个商品，也可以从购物车选择多件商品，只需要传入buyerId,Product(List类型)
     * @param collectDTO
     * @return
     */
    @PostMapping("/addCollectsBatch")
    @Operation(summary = "商品收藏(单件/多件)")
    public Result addCollectsBatch(@RequestBody CollectDTO collectDTO){
        return collectService.addCollectsBatch(collectDTO);
    }
}
